home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue35 / editnew / EDITNEW.ZIP / EDEMONEW.PAS < prev    next >
Pascal/Delphi Source File  |  1998-05-25  |  9KB  |  331 lines

  1. {Demo of EditNew. Coment in ReadENew.Txt}
  2. unit EDemoNew;
  3.  
  4. interface
  5.  
  6. uses
  7.  {$IFDEF WIN32}Windows,{$ELSE}Winprocs,WinTypes,{$ENDIF}
  8.   Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  9.   StdCtrls, ExtCtrls, Buttons, EditNew, Mask, DBCtrls, DB, DBTables;
  10.  
  11. type
  12.   TForm1 = class(TForm)
  13.     EditN1: TEditN;
  14.     EditN2: TEditN;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     Label3: TLabel;
  18.     Label4: TLabel;
  19.     Label5: TLabel;
  20.     Label6: TLabel;
  21.     Label7: TLabel;
  22.     EditN3: TEditN;
  23.     EditN4: TEditN;
  24.     EditN5: TEditN;
  25.     EditN6: TEditN;
  26.     EditN7: TEditN;
  27.     Label8: TLabel;
  28.     Label9: TLabel;
  29.     Label10: TLabel;
  30.     Label11: TLabel;
  31.     Label12: TLabel;
  32.     Label13: TLabel;
  33.     Label14: TLabel;
  34.     Panel1: TPanel;
  35.     Label16: TLabel;
  36.     Label17: TLabel;
  37.     Label18: TLabel;
  38.     EditN8: TEditN;
  39.     Label19: TLabel;
  40.     BitBtn1: TBitBtn;
  41.     Label15: TLabel;
  42.     Label20: TLabel;
  43.     Label21: TLabel;
  44.     Label22: TLabel;
  45.     EditN9: TEditN;
  46.     EditN10: TEditN;
  47.     MEditN1: TMEditN;
  48.     Label23: TLabel;
  49.     BitBtn2: TBitBtn;
  50.     BitBtn3: TBitBtn;
  51.     BitBtn4: TBitBtn;
  52.     Label24: TLabel;
  53.     Label25: TLabel;
  54.     Table1: TTable;
  55.     DataSource1: TDataSource;
  56.     DBEditN1: TDBEditN;
  57.     DbEditN: TLabel;
  58.     SpeedButton1: TSpeedButton;
  59.     SpeedButton2: TSpeedButton;
  60.     BitBtn5: TBitBtn;
  61.     EditN11: TEditN;
  62.     Label26: TLabel;
  63.     Label27: TLabel;
  64.     EditN12: TEditN;
  65.     Label28: TLabel;
  66.     Label29: TLabel;
  67.     DBEditN2: TDBEditN;
  68.     Label30: TLabel;
  69.     procedure EditN1Change(Sender: TObject);
  70.     procedure EditN2Change(Sender: TObject);
  71.     procedure EditN3Change(Sender: TObject);
  72.     procedure EditN4Change(Sender: TObject);
  73.     procedure EditN5Change(Sender: TObject);
  74.     procedure EditN6Change(Sender: TObject);
  75.     procedure EditN7Change(Sender: TObject);
  76.     procedure BitBtn1Click(Sender: TObject);
  77.     procedure EditN9Change(Sender: TObject);
  78.     procedure EditN10Change(Sender: TObject);
  79.     procedure BitBtn2Click(Sender: TObject);
  80.     procedure BitBtn3Click(Sender: TObject);
  81.     procedure BitBtn4Click(Sender: TObject);
  82.     procedure FormCreate(Sender: TObject);
  83.     procedure DBEditN1KeyDown(Sender: TObject; var Key: Word;
  84.       Shift: TShiftState);
  85.     procedure SpeedButton2Click(Sender: TObject);
  86.     procedure SpeedButton1Click(Sender: TObject);
  87.     procedure EditN11Exit(Sender: TObject);
  88.     procedure EditN12Exit(Sender: TObject);
  89.   private
  90.    IntArray : array [1..100] of Integer; // Array of integer value in memory
  91.    nEdit    : array [1..10] of TEditN;   // Array of new array in runtime dreate
  92.    p        : array [1..10] of Pointer;  // Pointer to conection nEdit[..] to IntArray[..]
  93.    nLabel   : array [1..10] of TLabel;   // Array of Label
  94.    iIndex   : Integer;                   // Index of the array all
  95.   public
  96.     { Public declarations }
  97.   end;
  98.  
  99. var
  100.   Form1: TForm1;
  101.  
  102. implementation
  103.  
  104. {$R *.DFM}
  105.  
  106. procedure TForm1.FormCreate(Sender: TObject);
  107. var
  108.  i   : Integer;
  109. begin
  110.  // Sample of create dBase Table in Runtime and assign value.
  111.  // The values are assigned after to the array IntArray[1..100]
  112.  with Table1 do begin
  113.   // Assign property to table
  114.   DataBaseName := ExtractFilePath(Application.ExeName);
  115.   TableName    := 'Table1';
  116.   TableType    := ttdBase;
  117.   // Create Table
  118.   with FieldDefs do begin
  119.    Clear;
  120.    Add('Field1', ftInteger, 0, False);
  121.    Add('Field2', ftString, 25, False);
  122.   end;
  123.   CreateTable;
  124.   // Assign value to the table
  125.   Open;
  126.   for i := 1 to 100 do begin
  127.    Append;
  128.    FieldByName('Field1').AsInteger := i;
  129.    FieldByName('Field2').AsString  := 'Field 2 Recno ' + IntToStr(i);
  130.    Post;
  131.   end;
  132.   // Assign DataSource to the table
  133.   DbEditN1.DataSource := DataSource1;
  134.   DbEditN1.DataField  := 'Field1';
  135.   DbEditN2.DataSource := DataSource1;
  136.   DbEditN2.DataField  := 'Field2';
  137.  
  138.   // Assign the value of the table to IntArray[1..100]
  139.   First;
  140.   for i := 1 to 100 do begin
  141.    IntArray[i] := Table1.FieldByName('Field1').AsInteger;
  142.    Next;
  143.   end;
  144.   First;
  145.  end;
  146. end;
  147.  
  148. procedure TForm1.EditN1Change(Sender: TObject);
  149. begin
  150.  Label1.Caption := EditN1.Text;
  151.  EditN9.SetFloat(EditN1.ValueFloat);
  152.  EditN10.SetInteger(EditN1.ValueInteger);
  153. end;
  154.  
  155. procedure TForm1.EditN2Change(Sender: TObject);
  156. begin
  157.  Label2.Caption := EditN2.Text;
  158.  EditN9.SetFloat(EditN2.ValueFloat);
  159.  EditN10.SetInteger(EditN2.ValueInteger);
  160. end;
  161.  
  162. procedure TForm1.EditN3Change(Sender: TObject);
  163. begin
  164.  Label3.Caption := EditN3.Text;
  165. end;
  166.  
  167. procedure TForm1.EditN4Change(Sender: TObject);
  168. begin
  169.  Label4.Caption := EditN4.Text;
  170. end;
  171.  
  172. procedure TForm1.EditN5Change(Sender: TObject);
  173. begin
  174.  Label5.Caption := EditN5.Text;
  175. end;
  176.  
  177. procedure TForm1.EditN6Change(Sender: TObject);
  178. begin
  179.  Label6.Caption := EditN6.Text;
  180. end;
  181.  
  182. procedure TForm1.EditN7Change(Sender: TObject);
  183. begin
  184.  Label7.Caption := EditN7.Text;
  185. end;
  186.  
  187. procedure TForm1.BitBtn1Click(Sender: TObject);
  188. begin
  189.  Close;
  190. end;
  191.  
  192. procedure TForm1.EditN9Change(Sender: TObject);
  193. begin
  194.  Label15.Caption := FloatToStr(EditN9.ValueFloat);
  195. end;
  196.  
  197. procedure TForm1.EditN10Change(Sender: TObject);
  198. begin
  199.  Label20.Caption := IntToStr(EditN10.ValueInteger);
  200. end;
  201.  
  202. procedure TForm1.BitBtn2Click(Sender: TObject);
  203. var
  204.  i,ie,il : Integer;
  205. begin
  206.  iIndex   := 1;  // Index of IntArray[1..100]
  207.  il       := 16; // Top of nLabel[1]
  208.  ie       := 30; // Top of nEdit[1]
  209.  
  210.  for i := 1 to 10 do begin
  211.  
  212.   // Create array of Label of conection of array to see
  213.   nLabel[i]               := TLabel.Create(Form1);
  214.   nLabel[i].Parent        := Form1;
  215.   nLabel[i].Caption       := 'IntArray[' + IntToStr(i) + '] -> NEdit[' + IntToStr(i) + ']';
  216.   nLabel[i].Top           := il  + ((i-1) * 36);
  217.   nLabel[i].Left          := 380;
  218.   nLabel[i].Font.Color    := clMaroon;
  219.  
  220.   // Create array of new EditN in runtime
  221.   nEdit[i]                := TEditN.Create(Form1);
  222.   nEdit[i].Top            := ie  + ((i-1) * 36);
  223.   nEdit[i].Left           := 380;
  224.   nEdit[i].EditKeyByTab   := #13;
  225.   nEdit[i].EditPrecision  := 2;
  226.   nEdit[i].EditType       := etInteger; // For type Double, change to etFloat
  227.                                         // and IntArray to Type Double
  228.   nEdit[i].Parent         := Form1;
  229.  
  230.   // Assign EditN[1..10] to IntArray[1..100] (1..10 to start)
  231.   p[i] := @IntArray[i];
  232.   nEdit[i].SetPtrToData(p[i]);
  233.  end;
  234.  
  235.  // Update value of IntArray[..] on the nEdit[..]
  236.  for i := 1 to 10 do NEdit[i].Update;
  237.  
  238.  NEdit[1].SetFocus;
  239.  BitBtn2.Enabled      := False;
  240.  BitBtn3.Enabled      := True;
  241.  BitBtn4.Enabled      := True;
  242.  BitBtn5.Enabled      := True;
  243.  SpeedButton1.Enabled := True;
  244.  SpeedButton2.Enabled := True;
  245. end;
  246.  
  247. procedure TForm1.BitBtn3Click(Sender: TObject);
  248. var
  249.  i : Integer;
  250. begin
  251.  // Clear the nEdit array
  252.  for i := 1 to 10 do nEdit[i].Destroy;
  253.  for i := 1 to 10 do nLabel[i].Destroy;
  254.  BitBtn2.Enabled      := True;
  255.  BitBtn3.Enabled      := False;
  256.  BitBtn4.Enabled      := False;
  257.  BitBtn5.Enabled      := False;
  258.  SpeedButton1.Enabled := False;
  259.  SpeedButton2.Enabled := False;
  260.  EditN1.SetFocus;
  261. end;
  262.  
  263. procedure TForm1.BitBtn4Click(Sender: TObject);
  264. var
  265.  i : Integer;
  266. begin
  267.  // To increase/decrease the array IntArray and assign value in nEdit[..]
  268.  for i := iIndex to iIndex + 9 do begin
  269.   if Sender = BitBtn4 then IntArray[i] := IntArray[i] + 1; // Increase
  270.   if Sender = BitBtn5 then IntArray[i] := IntArray[i] - 1; // Decrease
  271.  end;
  272.  for i := 1 to 10 do NEdit[i].Update;
  273. end;
  274.  
  275. procedure TForm1.DBEditN1KeyDown(Sender: TObject; var Key: Word;
  276.   Shift: TShiftState);
  277. begin
  278.  // Move in the Table with cursor arrow key
  279.  if (Key = VK_DOWN) then Table1.Next;
  280.  if (Key = VK_UP)   then Table1.Prior;
  281. end;
  282.  
  283. procedure TForm1.SpeedButton1Click(Sender: TObject);
  284. var
  285.  i,j : Integer;
  286. begin
  287.  // Move the nEdit array on the value of IntArray to up
  288.  if iIndex < 90 then iIndex := iIndex + 10
  289.                 else Exit;
  290.  i := 1;
  291.  for j := iIndex to iIndex + 9 do begin
  292.   nEdit[i].SetPtrToData(@IntArray[j]); // Change the assign nEdit[1..10] to
  293.                                        // IntArray[iIndex..iIndex + 9]
  294.   nEdit[i].Update;
  295.   nLabel[i].Caption := 'IntArray[' + IntToStr(j) + '] -> NEdit[' + IntToStr(i) + ']';
  296.   Inc(i)
  297.  end;
  298. end;
  299.  
  300. procedure TForm1.SpeedButton2Click(Sender: TObject);
  301. var
  302.  i,j : Integer;
  303. begin
  304.  // Move the nEdit array on the value of IntArray to down
  305.  if iIndex > 1 then iIndex := iIndex - 10
  306.                else Exit;
  307.  i := 1;
  308.  for j := iIndex to iIndex + 9 do begin
  309.   nEdit[i].SetPtrToData(@IntArray[j]);
  310.   nEdit[i].Update;
  311.   nLabel[i].Caption := 'IntArray[' + IntToStr(j) + '] -> NEdit[' + IntToStr(i) + ']';
  312.   Inc(i)
  313.  end;
  314. end;
  315.  
  316. procedure TForm1.EditN11Exit(Sender: TObject);
  317. begin
  318.  Label28.Caption := FloatToStr(EditN11.ValueFloat) + ' - ' +
  319.                     FormatDateTime('dd' + DateSeparator + 'mm' + DateSeparator +
  320.                                    'yyyy', EditN11.ValueDate);
  321. end;
  322.  
  323. procedure TForm1.EditN12Exit(Sender: TObject);
  324. begin
  325.  Label29.Caption := FloatToStr(EditN12.ValueFloat) + ' - ' +
  326.                     FormatDateTime('hh' + TimeSeparator + 'mm' + TimeSeparator +
  327.                                    'ss', EditN12.ValueTime);
  328. end;
  329.  
  330. end.
  331.